package Chapter6;

//124页程序6.3 重写方法+super关键字
class SuperClass{ //父类
    void showMyPosition(){ //Position 位置
        System.out.println("父：我是父类");
        System.out.println("父：我将返回");
    }
}

class SubClass extends SuperClass{ //子类
    void showMyPosition(){ //重写了父类的showMyPosition方法
        System.out.println("子：一开始我会去父类");
        super.showMyPosition();
        System.out.println("子：现在我将回到子类");
    }
}
public class SuperTest {
    public static void main(String[] args) {
        SubClass son = new SubClass();
        son.showMyPosition();
        //一开始默认调用自己重写的showMyPosition方法即"子：一开始我会去父类"，
        //遇到super.showMyPosition则调用父类的该方法，最后回到子类即"子：现在我将回到子类"。
    }
}
//super关键字
//子类若重写了父类的方法Method()，则子类会优先使用重写的方法Method()。若也想访问父类的方法Method()，则需要通过super.Method()进行访问。
//使用super关键字存在的问题：
//①使用super.Method会调用父类方法Method()中的全部内容，因此需要注意哪些内容不希望被使用。
//②如果父类的Method()方法是从祖先类继承得到的，则需要按继承层次关系向上查询找到。